package com.cin.cma.server.pos.service;

import com.cin.cma.common.model.finixx.base.BaseResponse;
import com.cin.cma.common.model.finixx.request.*;
import com.cin.cma.common.model.finixx.response.VoucherPayPolicyResponse;
import com.cin.cma.common.model.finixx.response.VoucherRedeemResponse;
import com.cin.cma.common.model.finixx.response.VoucherResponse;
import com.cin.cma.common.model.finixx.response.VoucherTempLockResponse;

/**
 *
 * @Date：2024-07-18 14:46
 */
public interface IVoucherService {
    /**
     * 退款兑换券(兑换券退票时需手动退券)
     *
     * @param model
     * @return
     */
    BaseResponse refund(VoucherRefundRequest model) throws Exception;

    /**
     * 获取礼券
     *
     * @param model
     * @return
     */
    VoucherResponse get(VoucherGetRequest model) throws Exception;

    /**
     * 临时锁定券
     *
     * @param model
     * @return
     */
    VoucherTempLockResponse tempLock(VouVoucherTempLockRequest model) throws Exception;

    /**
     * 券兑换接口
     *
     * @param model
     * @return
     */
    VoucherRedeemResponse redeem(VoucherRedeemRequest model) throws Exception;

    /**
     * 券兑换回滚
     *
     * @param model
     * @return
     */
    BaseResponse redeemRollback(VoucherRedeemRollbackRequest model) throws Exception;

    /**
     * 券政策获取
     *
     * @param model
     * @return
     */
    VoucherPayPolicyResponse getPayPolicy(VoucherPayPolicyRequest model) throws Exception;
}
